// The Vue build version to load with the `import` command
// (runtime-only or standalone) has been set in webpack.base.conf with an alias.
import Vue from 'vue'
import App from './App'
import router from './router'
import axios from "axios";

// 导航守卫
router.beforeEach((to, from, next) => {
  var token = localStorage.getItem('token')
  console.log('这里是token' + token);

  const pagesNeedAuth=['/profile','/editprofile']
// if (to.path == "/profile" || to.path == '/editprofile') 如果要判断的页面多了代码就会很臃肿，
// 所以定义一个数组，遍历数组
  // if (to.path == '/profile') {
    if(pagesNeedAuth.indexOf(to.path)>=0){
    // 这是去个人中心页的逻辑
    if (token) {
      next();
    } else {
      // next('/login');
      router.push({
        path:'/login'
      })
    }
  } else {
    // 这是去其他页面的逻辑
    next();
  }
})

// 设置路由基准路径
axios.defaults.baseURL = 'http://127.0.0.1:3000'



// /axios 拦截器 响应拦截器
import { Toast } from 'vant';

// 在请求拦截器,拦截的是我们的请求属性配置
// 我想知道你有没有带 headers
axios.interceptors.request.use((config) => {
  // 这里我要判断你有没有带 token
  // 如果你没有带,而且我在 localStorage 里面找到,我就同意给你带上去
  if (!config.headers.Authorization && localStorage.getItem('token')) {
      config.headers.Authorization = localStorage.getItem('token')
  }
  // 有拦截就要有返回
  return config;
})


axios.interceptors.response.use(res => {
  console.log(res);
  console.log('这里的数据被拦截了');
  const { message, statusCode } = res.data;

  if (message && statusCode == 401) {
    Toast.fail(message)
  };
  if (message == '用户信息验证失败') {
    router.push('./login')
  };
  return (res)
})



//引入组件库
import Vant from 'vant';

// 绑定到原型
Vue.prototype.$axios = axios;

//注册组件库
Vue.use(Vant);
//引入组件样式文件
import 'vant/lib/index.css';

Vue.config.productionTip = false

/* eslint-disable no-new */
new Vue({
  el: '#app',
  router,
  components: { App },
  template: '<App/>'
})
